<?php

/**
 * recibir_solicitud2 actions.
 *
 * @package    SAC_CLonsa
 * @subpackage recibir_solicitud2
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class recibir_solicitud2Actions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
    $this->forward('default', 'module');
  }
  
  public function executeSolicitudes(sfWebRequest $peticion)
  {
      if( $peticion->isMethod('post') ){
          $this->forward( 'recibir_solicitud2' , 'recibir' );
      }

      if( $this->getUser()->hasCredential('admin') ){
          $solicitudes = ItemOsPeer::getItemsPor3EstadosSolicitudId(9, 13, 16); // Estado = Recibida o Estado = No Satisfecha
          $this->entro_en = 1;
      }
      else{
          $solicitudes = ItemOsPeer::getItemsPor3EstadosParaUsuario(9, 13,16, $this->getUser()->getGuardUser()->getId() );
          $this->entro_en = 2;
      }
      $this->solicitudes = $solicitudes;
  }

  public function executeRecibir(sfWebRequest $peticion)
  {
      if( !is_null($peticion->getParameter('idSolicitud')) && $peticion->isMethod('post') )
      {//si existe el parámetro id y no es método post
          $solicitud = ItemOsPeer::getItemOrdenServicioPorId( $peticion->getParameter('idSolicitud') );

          if( !is_null($solicitud) )
          {
              $this->bandera = 0;
              $this->solicitud = $solicitud;
              $peticion->setParameter( 'id_solicitud', $solicitud->getId() );
          }
          else
          {
              $this->bandera = 1;
          }
      }//fin if
      elseif( $peticion->isMethod('post') && !is_null($peticion->getParameter('id_solicitud')) )
      {
          //$peticion->setParameter('observaciones', $peticion->getParameter('observaciones'));
          $this->observaciones = $peticion->getParameter('observacion_recibo_solicitante');
          //$peticion->setParameter( 'observaciones', $peticion->getParameter('observacion_recibo_en_adquisiciones') );

          $solicitud = ItemOsPeer::getItemOrdenServicioPorId( $peticion->getParameter('id_solicitud') );
          $this->solicitud = $solicitud ;

          if( $peticion->getParameter('radio_button_recibir_solicitud') == 'recibir')
          {/* Se ha aceptado el producto solicitado entregado por el proveedor */
              $this->bandera = 2;
          }
          else
          {/* Se ha rechazado el producto solicitado entregado por el proveedor */
              $this->bandera = 3;              
          }
      }
      elseif( $peticion->isMethod('post') && !is_null( $peticion->getParameter('recibirSolicitudId') ) ){
          $solicitud = ItemOsPeer::getItemOrdenServicioPorId( $peticion->getParameter('recibirSolicitudId') );
          $this->solicitud = $solicitud;

          $this->bandera = 4;
          $accion_en_solicitud = new AccionItemOs();
          $accion_en_solicitud->setFechaAccion( time() );
          $accion_en_solicitud->setsfGuardUser( $this->getUser()->getGuardUser() );
          $accion_en_solicitud->setItemOs( $solicitud );
          $accion_en_solicitud->setTipoAccionItemOsId( 13 );// Tipo Accion = Recibo Solicitante Conforme
          $accion_en_solicitud->setObservaciones( $peticion->getParameter('observaciones') );
          $accion_en_solicitud->save();
          $solicitud->setEstadoSolicitudId( 14 );// Estado = Satisfecha
          $solicitud->save();

          $this->redirect('recibir_solicitud/solicitudes');
      }
      elseif( $peticion->isMethod('post') && !is_null($peticion->getParameter('rechazarSolicitudId')) ){
          $solicitud = ItemOsPeer::getItemOrdenServicioPorId( $peticion->getParameter('rechazarSolicitudId') );
          $this->solicitud = $solicitud;

          $this->bandera = 5;
          $accion_en_solicitud = new AccionItemOs();
          $accion_en_solicitud->setFechaAccion( time() );
          $accion_en_solicitud->setsfGuardUser( $this->getUser()->getGuardUser() );
          $accion_en_solicitud->setItemOs( $solicitud );
          $accion_en_solicitud->setTipoAccionItemOsId( 14 );//Tipo Accion = Recibo Solicitante Inconforme
          $accion_en_solicitud->setObservaciones( $peticion->getParameter('observaciones') );
          $accion_en_solicitud->save();

          $solicitud->setEstadoSolicitudId( 16 );// Estado = No Satisfecha
          $solicitud->save();

      }
      else
      {
          $this->bandera = 6;
      }
  }
  
}
